public class Foodie extends Thread {
    @Override
    public void run() {
        /*
        * 1.循环
        * 2.同步代码块
        * 3.判断共享数据是否到了末尾（到了末尾）
        * 4.判断共享数据是否到了末尾 （没有到末尾 执行核心逻辑）
        * */

        while(true){
            //添加同步代码块 并且声明唯一的锁对象
            synchronized (Desk.lock){
                //判断是否还有数据可以消费
                //没有数据可以消费了直接跳出循环
                if(Desk.count==0){
                    break;
                }
                //判断是否有生产数据
                //没有生产数据 等待生产数据
                if(Desk.foodFlag == 0){
                    try {
                        Desk.lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                //有生产数据 消费数据
                System.out.println(Thread.currentThread().getName()+"正在吃第"+Desk.count+"碗饭");
                Desk.count--;
                //吃完了 唤醒生产数据 继续生产
                Desk.lock.notifyAll();
                Desk.foodFlag=0;

            }
        }
    }
}
